Translating from one natural language to another is a challenging problem to solve using computer software, given the complexity that is inherent in natural languages that have evolved over millennia through use in different societies. In general, natural language processing (NLP) techniques have been developed to analyze spoken or written input and translate the input to generate output in a different designated natural language. Existing, traditional translation solutions may translate each word or phrase individually, and may therefore introduce translation errors through lack of contextual awareness. Traditional translation solutions may exhibit translation errors in instances where words have a similar spelling and/or sound (e.g., “be” vs. “bee”, “dye” vs. “die”, etc.). Also, traditional translation solutions may also generate translated sentences in an order that is different than the order that would normally be used in the output language. Further, traditional transcription solutions that are intended to transcribe speech to text may also exhibit errors due to lack of contextual awareness, similar sounding words (e.g., homophones, homonyms) in the input, and/or other causes.